]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
environment: Warn when trying to access a deprecated actor property
authorFlorian Müllner <fmuellner@gnome.org>
Sat, 13 Apr 2019 18:34:29 +0000 (13:34 -0500)
committerFlorian Müllner <florian.muellner@gmail.com>
Wed, 17 Apr 2019 21:32:18 +0000 (21:32 +0000)
The port away from the old Shell.GenericContainer actor turned many JS
classes with a corresponding actor property into Clutter.Actor subclasses.
For compatibility reasons, those properties were kept around for a while.
They were now removed and any code that still uses them should be adjusted.

Facilitate that transition by defining the compatibility property on
Clutter.Actor itself, but log a warning every time it is accessed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

js/ui/environment.js

index e22ec7402045b1bc69ddb771ddcdf5650eeb1115..f7039471084ab557af317b94ac23096dc4221242 100644 (file)
@@ -96,6 +96,15 @@ function init() {
     Clutter.Actor.prototype.toString = function() {
         return St.describe_actor(this);
     };
+    // Deprecation warning for former JS classes turned into an actor subclass
+    Object.defineProperty(Clutter.Actor.prototype, 'actor', {
+        get() {
+            let klass = this.constructor.name;
+            let { stack } = new Error();
+            log(`Usage of object.actor is deprecated for ${klass}\n${stack}`);
+            return this;
+        }
+    });
 
     let origToString = Object.prototype.toString;
     Object.prototype.toString = function() {